package Interfaz;

import java.awt.Color;

import javax.swing.ImageIcon;
import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;

import Persona.Persona;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ventanaAgregarPersona extends JInternalFrame  // Clase que crea una ventana para agregar una persona
{
        private static ventanaAgregarPersona miVentanaAgregarPersona; 
        private JTextField nombretxt;               //
        private JTextField primerApellidotxt;           //
        private JTextField segundoApellidotxt;          //  Atributos para crear cajas de texto
        private JTextField cedulatxt;       //
        private JTextField telefonotxt;                 //
        private JTextField correotxt;                   //
        private JTextField nombreUsuariotxt;
        private JPasswordField contrasenatxt;
        private JComboBox comboBox;// Atributo que crea una caja con opciones (utilizado para escojer si es estudiante, colega o familiar)
       
        
        public static ventanaAgregarPersona getInstance()  // Get que llama a la ventana agregar persona
        {
                if(miVentanaAgregarPersona == null)
                {
                        miVentanaAgregarPersona = new ventanaAgregarPersona();
                }
                return miVentanaAgregarPersona;
        }
        
        private ventanaAgregarPersona() // Define los valores y componentes que va tener la ventana
    	{
    		getContentPane().setBackground(new Color(12,207,200)); // Color de la ventana
    		setTitle("Agregar Persona"); // título de la ventana
    		setFrameIcon(new ImageIcon(ventanaAgregarPersona.class.getResource("/Imayarc/Imagenes/logo.png"))); // icono de la ventana
    		setIconifiable(true); // Para minimizar
    		setBounds(140, 130, 650, 400); // Ubicacion y Tamaño de la ventana
    		getContentPane().setLayout(null); //Se usa para establecer el gestor de posicionamiento en un contenedor
    		
    		
    		// Crea un Label que diga Nombre 
    		JLabel nombre = new JLabel("Nombre"); 
    		nombre.setForeground(Color.white);
    		nombre.setBounds(12, 15, 49, 15);
    		getContentPane().add(nombre); 
    		
    		nombretxt = new JTextField();
    		nombretxt.setBounds(110, 11, 111, 20);
    		getContentPane().add(nombretxt);
    		nombretxt.setColumns(10);
    		
    		// Crea un Label que diga Primer Apellido
    		JLabel primerApellido = new JLabel("Primer Apellido");
    		primerApellido.setForeground(Color.white);
    		primerApellido.setBounds(10, 70, 105, 15);
    		getContentPane().add(primerApellido);
    		
    		primerApellidotxt = new JTextField();
    		primerApellidotxt.setBounds(110, 66,111, 20);
    		getContentPane().add(primerApellidotxt);
    		primerApellidotxt.setColumns(10);
    		
    		//  Crea un Label que diga Segundo Apellido
    		JLabel segundoApellido = new JLabel("Segundo Apellido");
    		segundoApellido.setBounds(10, 125, 105, 15);
    		segundoApellido.setForeground(Color.white);
    		getContentPane().add(segundoApellido);
    		
    		segundoApellidotxt = new JTextField();
    		segundoApellidotxt.setBounds(110, 125, 111, 20);
    		getContentPane().add(segundoApellidotxt);
    		segundoApellidotxt.setColumns(10);
    		
    		//  Crea un Label que diga telefono
    		JLabel telefono = new JLabel("Teléfono");
    		telefono.setForeground(Color.white);
    		telefono.setBounds(266, 11, 66, 14);
    		getContentPane().add(telefono);
    		
    		telefonotxt = new JTextField();
    		telefonotxt.setBounds(332, 11, 111, 20);
    		getContentPane().add(telefonotxt);
    		telefonotxt.setColumns(10);
    		
    	//  Crea un Label que diga el formato del telefono
    		JLabel formatotelefono = new JLabel("Ej:XXXX-XX-XX");
    		formatotelefono.setBounds(332, 30, 99, 14);
    		getContentPane().add(formatotelefono);
    		
    		JLabel Nombreusuario = new JLabel("Nombre Usuario");
    		Nombreusuario.setBounds(12, 180, 105, 15);
    		Nombreusuario.setForeground(Color.white);
    		getContentPane().add(Nombreusuario);	
    		
    		nombreUsuariotxt = new JTextField();
    		nombreUsuariotxt .setBounds(110, 180, 111, 20);
    		getContentPane().add(nombreUsuariotxt );
    		nombreUsuariotxt .setColumns(10);
    		
    		JLabel contrasena = new JLabel("Contraseña");
    		contrasena.setForeground(Color.white);
    		contrasena.setBounds(12, 235, 75, 15);
    		getContentPane().add(contrasena);	
    		
    		contrasenatxt = new JPasswordField();
    		contrasenatxt.setBounds(110, 235, 111, 20);
    		getContentPane().add(contrasenatxt);
    		
    		
    		correotxt = new JTextField();
    		correotxt.setBounds(332, 180, 111, 20);
    		getContentPane().add(correotxt);
    		correotxt.setColumns(10);
    		
    		JLabel correo = new JLabel("Correo");
    		correo.setForeground(Color.white);
    		correo.setBounds(266, 180, 45, 15);
    		getContentPane().add(correo);	
    		
    		// Formato del Correo
    		JLabel formatocorreo = new JLabel("persona@servicio.com");
    		formatocorreo.setBounds(332, 199, 139, 15);
    		getContentPane().add(formatocorreo);
    		
    		JLabel direccion = new JLabel("Dirección");
    		direccion.setForeground(Color.white);
    		direccion.setBounds(266, 235, 60, 15);
    		getContentPane().add(direccion);	
    		
    		JEditorPane PanelDireccion = new JEditorPane();
    		PanelDireccion.setBounds(332, 235, 130, 90);
    		getContentPane().add(PanelDireccion);	
    		
    		// Crea un Label que diga Categoria
    		JLabel puesto = new JLabel("Puesto");
    		puesto.setForeground(Color.white);
    		puesto.setBounds(266, 69, 71, 14);
    		getContentPane().add(puesto);
    		
    		// Crea un objeto que va ser una caja con opciones de colega, familiar o estudiante
    		comboBox = new JComboBox(); 
    		comboBox.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) 
    			{
    				
    			}
    		});
    		// Caja para escoger si la persona es colega, familiar o estudiante
    		comboBox.setModel(new DefaultComboBoxModel(new String[] {"Administrador", "Usuario"}));
    		comboBox.setMaximumRowCount(3); // Maximo de filas
    		comboBox.setBounds(332, 66, 111, 20); 
    		getContentPane().add(comboBox);
    		
    		JLabel Cedula = new JLabel("Cedula:");
    		Cedula.setBounds(266, 125, 71, 15);
    		Cedula.setForeground(Color.white);
    		getContentPane().add(Cedula);
    		
    		cedulatxt = new JTextField();
    		cedulatxt.setBounds(332, 127, 111, 20);
    		getContentPane().add(cedulatxt);
    		cedulatxt.setColumns(10);
    		
    		JLabel subirImagen = new JLabel("Subir foto");
    		subirImagen.setForeground(Color.white);
    		subirImagen.setBounds(490, 11, 66, 14);
    		getContentPane().add(subirImagen);
                            
    		JButton subirimagen = new JButton();
    		ImageIcon icono = new ImageIcon ("src/Imayarc/Imagenes/cargarimagen.png");
    		subirimagen.setIcon(icono);
    		subirimagen.setBounds(510, 41, 48, 48);
    		getContentPane().add(subirimagen);
    		
    		
                // Boton aceptar que valida que todo este lleno 
                JButton aceptar = new JButton("Aceptar");
                aceptar.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) 
                        {
                                if(!nombretxt.getText().isEmpty() && !primerApellidotxt.getText().isEmpty() &&
                                   !segundoApellidotxt.getText().isEmpty() && !cedulatxt.getText().isEmpty() &&
                                   !telefonotxt.getText().isEmpty() && !correotxt.getText().isEmpty())
                                {
                                       Persona persona= new Persona(nombretxt.getText(), primerApellidotxt.getText(),segundoApellidotxt.getText(),
                                    		   nombreUsuariotxt.getText(),contrasenatxt.getText(),cedulatxt.getText(),"vacio",telefonotxt.getText(),correotxt.getText(),null); 
                                       main.main.administrador.agregarPersonaRegistro(persona);
                                        nombretxt.setText("");
                                        primerApellidotxt.setText("");
                                        segundoApellidotxt.setText("");
                                        cedulatxt.setText("");
                                        telefonotxt.setText("");
                                        correotxt.setText("");
                                        setVisible(false);
                                        JOptionPane.showMessageDialog(null, "Se agrego la persona con exito");
                                }
                                else
                                {
                                        JOptionPane.showMessageDialog(null, "Debe llenar todos los campos del formulario");
                                }
                        }
                });
                aceptar.setBounds(12, 290, 90, 25);
        		getContentPane().add(aceptar);
        		
        		// Boton que sale de la ventana
        		JButton cancelar = new JButton("Cancelar");
        		cancelar.addActionListener(new ActionListener() {
        			public void actionPerformed(ActionEvent e)
        			{
        				nombretxt.setText("");
        				primerApellidotxt.setText("");
        				segundoApellidotxt.setText("");
        				cedulatxt.setText("");
        				telefonotxt.setText("");
        				correotxt.setText("");
        				setVisible(false);
        			}
        		});
        		cancelar.setBounds(112, 290, 90, 25);
        		getContentPane().add(cancelar);
        	}
       
}

